package com.yangxc.core.sms.handler;

import lombok.NonNull;

import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.util.Random;

/**
 * @author yangxc
 * @version 1.0.0
 * @ClassName SmsTemplate.java
 * @Description TODO
 * @createTime 2021年07月05日 17:34:00
 */
public interface SmsTemplate {

    /**
     * 发送短消息
     *
     * @param phoneNumber   手机号
     * @param signName      　签名
     * @param templateCode  　模板Id
     * @param templateParam JSON模板参数字符串
     * @return boolean
     */
    boolean sendSms(@NonNull String phoneNumber, @NonNull String signName,
                    @NonNull String templateCode, @NonNull String templateParam);

    /**
     * 发送验证码
     *
     * @param digits 位数
     * @return String
     */
    default String sendRandCode(int digits) {
        StringBuilder sBuilder = new StringBuilder();
        Random rd = new Random( LocalDateTime.now().toInstant(ZoneOffset.of("+8")).toEpochMilli());
        for(int i = 0; i < digits; ++i) {
            sBuilder.append(rd.nextInt(9));
        }
        return sBuilder.toString();
    }
}
